package com.atguigu.daijia.customer.service;

import com.atguigu.daijia.model.vo.base.PageVo;
import com.atguigu.daijia.model.vo.coupon.AvailableCouponVo;
import com.atguigu.daijia.model.vo.coupon.NoReceiveCouponVo;
import com.atguigu.daijia.model.vo.coupon.NoUseCouponVo;
import com.atguigu.daijia.model.vo.coupon.UsedCouponVo;

import java.util.List;

public interface CouponService  {

    /**
     * 分页查询乘客未领取的优惠券列表
     * @param customerId
     * @param page
     * @param limit
     * @return
     */
    PageVo<NoReceiveCouponVo> findNoReceiveCouponPage(Long customerId, Long page, Long limit);

    /**
     * 分页查询乘客未使用的优惠券列表
     * @param customerId
     * @param page
     * @param limit
     * @return
     */
    PageVo<NoUseCouponVo> findNoUseCouponPage(Long customerId, Long page, Long limit);

    /**
     * 分页查询乘客已使用的优惠券列表
     * @param customerId
     * @param page
     * @param limit
     * @return
     */
    PageVo<UsedCouponVo> findUsedCouponPage(Long customerId, Long page, Long limit);

    /**
     * 领取优惠券
     * @param customerId
     * @param couponId
     * @return
     */
    Boolean receiveCoupon(Long customerId, Long couponId);

    /**
     * 查询可用优惠券列表
     * @param customerId
     * @param orderId
     * @return
     */
    List<AvailableCouponVo> findAvailableCouponList(Long customerId, Long orderId);
}
